import pandas as pd

def signal(*args):
    """
    计算收益率因子
    
    Args:
        df: DataFrame, 包含价格数据
        param: 周期参数，如果是元组则包含(周期, 因子名称)
    """
    df = args[0]
    n = args[1]
    factor_name = args[2]
    
    # 确保 period 是整数
    period = int(n)
    
    # 计算收益率
    # 使用 close 价格计算收益率
    df[factor_name] = df['close'].pct_change(n)
    
    # 填充 NaN 值
    df[factor_name] = df[factor_name].fillna(0)
    
    return df
